Le 29 mai dernier, GNU a sorti une nouvelle version de son logiciel Octave, près de 8 ans après la précédente v3. GNU Octave est un logiciel libre de calcul numérique, dont le langage accepte de nombreuses constructions de la bibliothèque standard du C, qui peuvent être étendues sur Unix, et propose l'usage de fonctions écrites en C++. Il peut fonctionner avec les nombres réels et les nombres complexes. Des fonctionnalités de tracés graphiques sont directement intégrées au langage.
La version 4.0, version majeure, apporte une liste impressionnante de nouveautés : interface graphique, programmation orientée-objet, meilleure compatibilité avec Matlab, nouvelles fonctionnalités, ré-écriture de fonctions, …
GNU Octave est comparable à MATLAB, et dispose d'une syntaxe très proche. Il présente une sérieuse alternative, largement utilisée. Octave est écrit en C++, et dispose d’un moteur intégré de rendu graphique (basé sur OpenGL).
- Interface graphique Qt complète et riche en possibilités de configurations ;
- Octave utilise désormais OpenGL par défaut pour les graphiques, grâce aux widgets Qt ;
- Support du rendu offscreen (ex: impression du rendu sans l'avoir affiché) ;
- Mode Editeur sans gui
octave4 --no-gui
capable de lancer boites & widgets Octave Qt ; - Mode Editeur en ligne de commande
octave4-cli
; Mode minimaliste
--no-gui-libs
utilisant l'ancien fltk, également disponible.-
Définitions de mots clés pour la programmation orientée objets :
- classdef endclassdef,
- enumeration endenumeration,
- events endevents,
- methods endmethods,
- properties endproperties.
Les fonctions
fliplr
flipud
rot90
rectint
supportent les tableaux à N dimensions ;Xor
supporte maintenant les réductions cumulatives ;
- Remplacement de fonctions (interp2 remplace l'ex bicubic. individual preference get/set routines : ex dump_prefs. dir_in_loadpath : ex find_dir_in_path. isfinite : ex finite. glob ou regexp : ex fnmatch. sylvester : ex syl. etc..)
Fonctionnalités spécifiques à l'audio (audiodevinfo, audioread, sound, audioinfo, audiorecorder, soundsc, audioplayer, audiowrite)
-
de nombreuses évolutions & nouveautés, parmis lesquelles :
- annotation,
- bandwidth,
- cubehelix,
- jit_failcnt,
- metaclass,
- numfields,
- ordschur,
- pan,
- qmr,
- rotate3d,
- sylvester,
- zoom,
- (..)
D'autres solutions open source existent, comme Scilab, mais nettement moins compatible avec Matlab, ou SciPy, extension du langage Python (existe aussi via EPD/Canopy et non compatible avec Matlab). GNU Octave fait un bond, cette version 4 va sans nul doute ravir les scientifiques parmis nous, universitaires, institutionnels ou industriels.
Aller plus loin
- Site officiel (1120 clics)
- GNU Octave 4.0 Release Notes (271 clics)
- OctConf 2015 à Darmstadt (Allemagne) du 21 au 23 septembre 2015 (102 clics)
- Les détails des nouveautés (229 clics)
- Le wiki officiel (153 clics)
- «La programmation Octave», livre en français sur wikibooks (442 clics)
# Matlab compiler
Posté par wysman . Évalué à 4.
Existe t-il un module de génération de code / librairies pour octave ?
Matlab vend une boite a outils nommées Matlab Compiler pour cela.
[^] # Re: Matlab compiler
Posté par PolePosition . Évalué à 2.
Hello,
Les fichiers .oct ?
https://www.gnu.org/software/octave/doc/interpreter/Getting-Started-with-Oct_002dFiles.html
https://www.google.de/search?q=octave+code+compiler&ie=utf-8&oe=utf-8&gws_rd=cr&ei=DVpsVYf1HsO8ygP93YDwAQ
J'suis pas sûr, hein, j'ai jamais utilisé…
[^] # Re: Matlab compiler
Posté par PolePosition . Évalué à 2.
"Des fonctions écrites en C++ peuvent être utilisées dans l'environnement Octave. Le fichier source porte l'extension '.cc', car écrit en C++ et la fonction compilée à l'aide de mkoctfile porte l'extension '.oct'. Ceci permet de travailler avec l'environnement souple d'Octave tout en ayant la vitesse d'exécution d'un programme compilé."
Source : http://fr.wikipedia.org/wiki/GNU_Octave
[^] # Re: Matlab compiler
Posté par pantxo . Évalué à 4.
Bonjour,
Si l'on se fie à la description des "Key features" de la toolbox Matlab Compiler, le principal intérêt est de pouvoir faire tourner du code Matlab sur des postes ou ce dernier n'est pas installé sans avoir à racheter une licence.
En détails:
- "Royalty-Free Sharing with Colleagues and Customers": cette fonctionnalité est intrinsèquement présente dans Octave qui est un logiciel libre
- "Sharing MATLAB Programs as Standalone Applications": il est possible (et il y a des exemples dans la doc) de créer des application indépendantes, en C++, qui embarquent les classes d'Octave pour l'analyse numérique, voire même l'interpréteur de langage Octave.
- "Apps for Packaging Your MATLAB Programs Interactively": non implémenté
- "Sharing MATLAB Programs with Excel Users": non implémenté
En bref, je crois qu'en pratique cette toolbox n'a de sens que parce que Matlab est un logiciel propriétaire :-)
@PolePosition: les fichiers .oct sont l'équivalent Octave des fichiers .mex de Matlab. Il permettent de programmer, en c++, des fonctions que l'on pourra utiliser dans l'interpréteur de la même manière que des fonctions écrites en langage Octave/Matlab. Avantages: rapidité et possibilité d'utiliser des librairies tierces.
[^] # Re: Matlab compiler
Posté par 2PetitsVerres . Évalué à 3.
Dans mon boulot, on génère du code C avec la toolbox "Embedded Coder" (donc ce n'est pas exactement pareil, puisque c'est de modèles Simulink qu'on part, et pas de code Matlab), mais j'imagine mal qu'on embarque dans le satellite une partie du code de Matlab (ou d'Octave) pour qu'il interprète les modèles.
Ce n'est pas vraiment la même chose de prendre du code Matlab/Octave, d'en générer un code C qui est transformé en binaire qui ne fait que ça, ou de prendre un binaire qui interprète du code Matlab/Octave et de lui donner un script Matlab/Octave à exécuter. J'ai l'impression (je peux me tromper) que le second risque de prendre un peu plus de place.
Tous les nombres premiers sont impairs, sauf un. Tous les nombres premiers sont impairs, sauf deux.
# Générer du code pour une cible
Posté par PolePosition . Évalué à 2.
D'après une recherche sur internet, il semble que Octave ne permette pas de générer du code puis envoyer ce code sur une cible (embedded code to a specific target).
Matlab fait ça, pour pas mal de micro contrôleurs.
Octave ne vise pas cette fonctionnalité ?
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.